//
// NeL - bindings
// Copyright (C) 2010 Naush
//
//This program is free software: you can redistribute it and/or modify
//it under the terms of the GNU Affero General Public License as
//published by the Free Software Foundation, either version 3 of the
//License, or (at your option) any later version.
//
//This program is distributed in the hope that it will be useful,
//but WITHOUT ANY WARRANTY; without even the implied warranty of
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//GNU Affero General Public License for more details.
//
//You should have received a copy of the GNU Affero General Public License
//along with this program.  If not, see <http://www.gnu.org/licenses/>.

%module nel3d
%include "../common.i"

%include "nel/misc/triangle.h"
%include "nel/misc/plane.h"
%include "nel/misc/plane_inline.h"
%include "nel/misc/quad.h"
%include "nel/misc/vector.h"
%include "nel/misc/vectord.h"
%include "nel/misc/vector_h.h"
%include "nel/misc/smart_ptr.h"
%include "nel/misc/common.h"
%include "nel/misc/uv.h"
%include "nel/misc/rgba.h"
%include "nel/misc/stream.h"

// redifined nested class
class CMode {
public:
	CMode() {}
	CMode(uint16 w, uint16 h, uint8 d, bool windowed= true, uint frequency = 0, sint8 aa = -1){}
};

%{
#include "nel/3d/anim_ctrl.h"
#include "nel/3d/anim_detail_trav.h"
#include "nel/3d/animatable.h"
#include "nel/3d/animated_lightmap.h"
#include "nel/3d/animated_material.h"
#include "nel/3d/animated_morph.h"
#include "nel/3d/animated_value.h"
#include "nel/3d/animation.h"
#include "nel/3d/animation_optimizer.h"
#include "nel/3d/animation_playlist.h"
#include "nel/3d/animation_set.h"
#include "nel/3d/animation_set_user.h"
#include "nel/3d/animation_time.h"
#include "nel/3d/async_file_manager_3d.h"
#include "nel/3d/async_texture_block.h"
#include "nel/3d/async_texture_manager.h"
#include "nel/3d/bezier_patch.h"
#include "nel/3d/bloom_effect.h"
#include "nel/3d/bone.h"
#include "nel/3d/bsp_tree.h"
#include "nel/3d/camera.h"
#include "nel/3d/camera_col.h"
#include "nel/3d/channel_mixer.h"
#include "nel/3d/clip_trav.h"
#include "nel/3d/cloud.h"
#include "nel/3d/cloud_scape.h"
#include "nel/3d/cloud_scape_user.h"
#include "nel/3d/cluster.h"
#include "nel/3d/coarse_mesh_build.h"
#include "nel/3d/coarse_mesh_manager.h"
#include "nel/3d/computed_string.h"
#include "nel/3d/cube_grid.h"
#include "nel/3d/cube_map_builder.h"
#include "nel/3d/debug_vb.h"
#include "nel/3d/deform_2d.h"
#include "nel/3d/driver.h"
#include "nel/3d/driver_material_inline.h"
#include "nel/3d/driver_user.h"
#include "nel/3d/dru.h"
#include "nel/3d/event_mouse_listener.h"
#include "nel/3d/fast_ptr_list.h"
#include "nel/3d/fasthls_modifier.h"
#include "nel/3d/flare_model.h"
#include "nel/3d/flare_shape.h"
#include "nel/3d/font_generator.h"
#include "nel/3d/font_manager.h"
#include "nel/3d/frustum.h"
#include "nel/3d/heat_haze.h"
#include "nel/3d/height_map.h"
#include "nel/3d/hls_color_texture.h"
#include "nel/3d/hls_texture_bank.h"
#include "nel/3d/hls_texture_manager.h"
#include "nel/3d/hrc_trav.h"
#include "nel/3d/ig_surface_light.h"
#include "nel/3d/ig_surface_light_build.h"
#include "nel/3d/index_buffer.h"
#include "nel/3d/init_3d.h"
#include "nel/3d/instance_group_user.h"
#include "nel/3d/instance_lighter.h"
#include "nel/3d/key.h"
#include "nel/3d/landscape.h"
#include "nel/3d/landscape_collision_grid.h"
#include "nel/3d/landscape_def.h"
#include "nel/3d/landscape_face_vector_manager.h"
#include "nel/3d/landscape_model.h"
#include "nel/3d/landscape_profile.h"
#include "nel/3d/landscape_user.h"
#include "nel/3d/landscape_vegetable_block.h"
#include "nel/3d/landscapeig_manager.h"
#include "nel/3d/landscapevb_allocator.h"
#include "nel/3d/landscapevb_info.h"
#include "nel/3d/layered_ordering_table.h"
#include "nel/3d/light.h"
#include "nel/3d/light_contribution.h"
#include "nel/3d/light_influence_interpolator.h"
#include "nel/3d/light_trav.h"
#include "nel/3d/light_user.h"
#include "nel/3d/lighting_manager.h"
#include "nel/3d/load_balancing_trav.h"
#include "nel/3d/lod_character_builder.h"
#include "nel/3d/lod_character_instance.h"
#include "nel/3d/lod_character_manager.h"
#include "nel/3d/lod_character_shape.h"
#include "nel/3d/lod_character_shape_bank.h"
#include "nel/3d/lod_character_texture.h"
#include "nel/3d/logic_info.h"
#include "nel/3d/material.h"
#include "nel/3d/matrix_3x4.h"
#include "nel/3d/mesh.h"
#include "nel/3d/mesh_base.h"
#include "nel/3d/mesh_base_instance.h"
#include "nel/3d/mesh_blender.h"
#include "nel/3d/mesh_block_manager.h"
#include "nel/3d/mesh_geom.h"
#include "nel/3d/mesh_instance.h"
#include "nel/3d/mesh_morpher.h"
#include "nel/3d/mesh_mrm.h"
#include "nel/3d/mesh_mrm_instance.h"
#include "nel/3d/mesh_mrm_skinned.h"
#include "nel/3d/mesh_mrm_skinned_instance.h"
#include "nel/3d/mesh_multi_lod.h"
#include "nel/3d/mesh_multi_lod_instance.h"
#include "nel/3d/mesh_vertex_program.h"
#include "nel/3d/meshvp_per_pixel_light.h"
#include "nel/3d/meshvp_wind_tree.h"
#include "nel/3d/mini_col.h"
#include "nel/3d/motion_blur.h"
#include "nel/3d/mrm_builder.h"
#include "nel/3d/mrm_internal.h"
#include "nel/3d/mrm_level_detail.h"
#include "nel/3d/mrm_mesh.h"
#include "nel/3d/mrm_parameters.h"
#include "nel/3d/nelu.h"
#include "nel/3d/noise_3d.h"
#include "nel/3d/occlusion_query.h"
#include "nel/3d/ordering_table.h"
#include "nel/3d/packed_world.h"
//#include "nel/3d/packed_zone.h"
#include "nel/3d/particle_system.h"
#include "nel/3d/particle_system_manager.h"
#include "nel/3d/particle_system_model.h"
#include "nel/3d/particle_system_process.h"
#include "nel/3d/particle_system_shape.h"
#include "nel/3d/patch.h"
#include "nel/3d/patch_rdr_pass.h"
#include "nel/3d/patchdlm_context.h"
#include "nel/3d/patchuv_locator.h"
#include "nel/3d/play_list_manager.h"
#include "nel/3d/play_list_manager_user.h"
#include "nel/3d/play_list_user.h"
#include "nel/3d/point_light.h"
#include "nel/3d/point_light_influence.h"
#include "nel/3d/point_light_model.h"
#include "nel/3d/point_light_named.h"
#include "nel/3d/point_light_named_array.h"
#include "nel/3d/portal.h"
#include "nel/3d/primitive_profile.h"
#include "nel/3d/ps_allocator.h"
#include "nel/3d/ps_attrib.h"
#include "nel/3d/ps_attrib_maker.h"
#include "nel/3d/ps_attrib_maker_bin_op.h"
#include "nel/3d/ps_attrib_maker_bin_op_inline.h"
#include "nel/3d/ps_attrib_maker_helper.h"
#include "nel/3d/ps_attrib_maker_iterators.h"
#include "nel/3d/ps_attrib_maker_template.h"
#include "nel/3d/ps_color.h"
#include "nel/3d/ps_direction.h"
#include "nel/3d/ps_dot.h"
#include "nel/3d/ps_edit.h"
#include "nel/3d/ps_emitter.h"
#include "nel/3d/ps_face.h"
#include "nel/3d/ps_face_look_at.h"
#include "nel/3d/ps_fan_light.h"
#include "nel/3d/ps_float.h"
#include "nel/3d/ps_force.h"
#include "nel/3d/ps_int.h"
#include "nel/3d/ps_iterator.h"
#include "nel/3d/ps_light.h"
#include "nel/3d/ps_located.h"
#include "nel/3d/ps_lod.h"
#include "nel/3d/ps_macro.h"
#include "nel/3d/ps_mesh.h"
#include "nel/3d/ps_misc.h"
#include "nel/3d/ps_particle.h"
#include "nel/3d/ps_particle2.h"
#include "nel/3d/ps_particle_basic.h"
#include "nel/3d/ps_plane_basis.h"
#include "nel/3d/ps_plane_basis_maker.h"
#include "nel/3d/ps_quad.h"
#include "nel/3d/ps_register_color_attribs.h"
#include "nel/3d/ps_register_float_attribs.h"
#include "nel/3d/ps_register_int_attribs.h"
#include "nel/3d/ps_register_plane_basis_attribs.h"
#include "nel/3d/ps_ribbon.h"
#include "nel/3d/ps_ribbon_base.h"
#include "nel/3d/ps_ribbon_look_at.h"
#include "nel/3d/ps_shockwave.h"
#include "nel/3d/ps_sound.h"
#include "nel/3d/ps_spawn_info.h"
#include "nel/3d/ps_tail_dot.h"
#include "nel/3d/ps_util.h"
#include "nel/3d/ps_zone.h"
#include "nel/3d/ptr_set.h"
#include "nel/3d/quad_effect.h"
#include "nel/3d/quad_grid.h"
#include "nel/3d/quad_grid_clip_cluster.h"
#include "nel/3d/quad_grid_clip_manager.h"
#include "nel/3d/quad_tree.h"
#include "nel/3d/radix_sort.h"
#include "nel/3d/raw_skin.h"
#include "nel/3d/raw_skinned.h"
#include "nel/3d/ray_mesh.h"
#include "nel/3d/register_3d.h"
#include "nel/3d/render_trav.h"
#include "nel/3d/root_model.h"
#include "nel/3d/scene.h"
#include "nel/3d/scene_group.h"
#include "nel/3d/scene_user.h"
#include "nel/3d/scissor.h"
#include "nel/3d/seg_remanence.h"
#include "nel/3d/seg_remanence_shape.h"
#include "nel/3d/shader.h"
#include "nel/3d/shadow_map.h"
#include "nel/3d/shadow_map_manager.h"
#include "nel/3d/shadow_poly_receiver.h"
#include "nel/3d/shadow_skin.h"
#include "nel/3d/shape.h"
#include "nel/3d/shape_bank.h"
#include "nel/3d/shape_bank_user.h"
#include "nel/3d/shape_info.h"
#include "nel/3d/shifted_triangle_cache.h"
#include "nel/3d/skeleton_model.h"
#include "nel/3d/skeleton_shape.h"
#include "nel/3d/skeleton_spawn_script.h"
#include "nel/3d/skeleton_weight.h"
#include "nel/3d/static_quad_grid.h"
#include "nel/3d/stripifier.h"
#include "nel/3d/surface_light_grid.h"
#include "nel/3d/tangent_space_build.h"
#include "nel/3d/target_anim_ctrl.h"
#include "nel/3d/tess_block.h"
#include "nel/3d/tess_face_priority_list.h"
#include "nel/3d/tess_list.h"
#include "nel/3d/tessellation.h"
#include "nel/3d/text_context.h"
#include "nel/3d/text_context_user.h"
#include "nel/3d/texture.h"
#include "nel/3d/texture_blank.h"
#include "nel/3d/texture_blend.h"
#include "nel/3d/texture_bloom.h"
#include "nel/3d/texture_bump.h"
#include "nel/3d/texture_cube.h"
#include "nel/3d/texture_dlm.h"
#include "nel/3d/texture_emboss.h"
#include "nel/3d/texture_far.h"
#include "nel/3d/texture_file.h"
#include "nel/3d/texture_font.h"
#include "nel/3d/texture_grouped.h"
#include "nel/3d/texture_mem.h"
#include "nel/3d/texture_multi_file.h"
#include "nel/3d/texture_near.h"
#include "nel/3d/texture_user.h"
#include "nel/3d/tile_bank.h"
#include "nel/3d/tile_color.h"
#include "nel/3d/tile_element.h"
#include "nel/3d/tile_far_bank.h"
#include "nel/3d/tile_light_influence.h"
#include "nel/3d/tile_lumel.h"
#include "nel/3d/tile_noise_map.h"
#include "nel/3d/tile_vegetable_desc.h"
#include "nel/3d/track.h"
//#include "nel/3d/track_bezier.h"
#include "nel/3d/track_keyframer.h"
#include "nel/3d/track_sampled_common.h"
#include "nel/3d/track_sampled_quat.h"
#include "nel/3d/track_sampled_quat_small_header.h"
#include "nel/3d/track_sampled_vector.h"
//#include "nel/3d/track_tcb.h"
#include "nel/3d/transform.h"
#include "nel/3d/transform_shape.h"
#include "nel/3d/transformable.h"
#include "nel/3d/trav_scene.h"
#include "nel/3d/u_3d_mouse_listener.h"
#include "nel/3d/u_animation.h"
#include "nel/3d/u_animation_set.h"
#include "nel/3d/u_bone.h"
#include "nel/3d/u_camera.h"
#include "nel/3d/u_cloud_scape.h"
#include "nel/3d/u_driver.h"
#include "nel/3d/u_instance.h"
#include "nel/3d/u_instance_group.h"
#include "nel/3d/u_instance_material.h"
#include "nel/3d/u_landscape.h"
#include "nel/3d/u_light.h"
#include "nel/3d/u_material.h"
#include "nel/3d/u_particle_system_instance.h"
#include "nel/3d/u_particle_system_sound.h"
#include "nel/3d/u_play_list.h"
#include "nel/3d/u_play_list_manager.h"
#include "nel/3d/u_point_light.h"
#include "nel/3d/u_ps_sound_impl.h"
#include "nel/3d/u_ps_sound_interface.h"
#include "nel/3d/u_scene.h"
#include "nel/3d/u_shape.h"
#include "nel/3d/u_shape_bank.h"
#include "nel/3d/u_skeleton.h"
#include "nel/3d/u_text_context.h"
#include "nel/3d/u_texture.h"
#include "nel/3d/u_track.h"
#include "nel/3d/u_transform.h"
#include "nel/3d/u_transformable.h"
#include "nel/3d/u_visual_collision_entity.h"
#include "nel/3d/u_visual_collision_manager.h"
#include "nel/3d/u_visual_collision_mesh.h"
#include "nel/3d/u_water.h"
#include "nel/3d/u_water_env_map.h"
#include "nel/3d/vegetable.h"
#include "nel/3d/vegetable_blend_layer_model.h"
#include "nel/3d/vegetable_clip_block.h"
#include "nel/3d/vegetable_def.h"
#include "nel/3d/vegetable_instance_group.h"
#include "nel/3d/vegetable_light_ex.h"
#include "nel/3d/vegetable_manager.h"
#include "nel/3d/vegetable_quadrant.h"
#include "nel/3d/vegetable_shape.h"
#include "nel/3d/vegetable_sort_block.h"
#include "nel/3d/vegetable_uv8.h"
#include "nel/3d/vegetablevb_allocator.h"
#include "nel/3d/vertex_buffer.h"
//#include "nel/3d/vertex_buffer_heap.h"
#include "nel/3d/vertex_program.h"
#include "nel/3d/vertex_program_parse.h"
#include "nel/3d/vertex_stream_manager.h"
#include "nel/3d/viewport.h"
#include "nel/3d/visual_collision_entity.h"
#include "nel/3d/visual_collision_entity_user.h"
#include "nel/3d/visual_collision_manager.h"
#include "nel/3d/visual_collision_manager_user.h"
#include "nel/3d/visual_collision_mesh.h"
#include "nel/3d/water_env_map.h"
#include "nel/3d/water_env_map_user.h"
#include "nel/3d/water_height_map.h"
#include "nel/3d/water_model.h"
#include "nel/3d/water_pool_manager.h"
#include "nel/3d/water_shape.h"
#include "nel/3d/zone.h"
#include "nel/3d/zone_corner_smoother.h"
#include "nel/3d/zone_lighter.h"
#include "nel/3d/zone_manager.h"
#include "nel/3d/zone_search.h"
#include "nel/3d/zone_smoother.h"
#include "nel/3d/zone_symmetrisation.h"
#include "nel/3d/zone_tgt_smoother.h"
using namespace NL3D;
using namespace NLMISC;

typedef NL3D::UDriver::TCullMode TCullMode;
typedef NL3D::UDriver::TStencilFunc TStencilFunc;
typedef NL3D::UDriver::TMessageBoxType TMessageBoxType;
typedef NL3D::UDriver::TMessageBoxIcon TMessageBoxIcon;
typedef NL3D::UDriver::TMessageBoxId TMessageBoxId;
typedef NL3D::UDriver::TPolygonMode TPolygonMode;
typedef NL3D::U3dMouseListener::TMouseMode TMouseMode;
typedef NL3D::UTexture::TWrapMode TWrapMode;
typedef NL3D::UScene::TRenderPart TRenderPart;
typedef NL3D::UScene::TPolygonBalancingMode TPolygonBalancingMode;
typedef NL3D::UScene::TRenderFilter TRenderFilter;
typedef NL3D::UScene::CBenchResults CBenchResults;
typedef NL3D::UTextContext::THotSpot THotSpot;
typedef NL3D::UTextContext::CStringInfo CStringInfo;
typedef NL3D::UTexture::TUploadFormat TUploadFormat;
typedef NL3D::UTexture::TMagFilter TMagFilter;
typedef NL3D::UTexture::TMinFilter TMinFilter;
typedef NL3D::UTrackKeyframer::UKeyLinearFloat UKeyLinearFloat;
typedef NL3D::UTrackKeyframer::UKeyTCBFloat UKeyTCBFloat;
typedef NL3D::UTrackKeyframer::UKeyBezierFloat UKeyBezierFloat;
typedef NL3D::UDriver::TStencilOp TStencilOp;
typedef CKeyTCB<NLMISC::CAngleAxis>     CKeyTCBQuat;

typedef NL3D::UDriver::CMode CMode;

%}

%ignore NL3D::CVertexBufferReadWrite::CVertexBufferReadWrite(const CVertexBufferReadWrite&);
%ignore NL3D::CVertexBufferReadWrite::operator=(const CVertexBufferReadWrite&);
%ignore NL3D::CMeshMRMGeom::CMeshBuildMRM;
%ignore NL3D::CMeshMRMSkinnedGeom::CMeshBuildMRM;
// NeL broken
%ignore NL3D::waterVBEnd;
%ignore NL3D::CVertexBufferHeap;
%ignore NL3D::CIndexBufferReadWrite::touchIndexes;
%ignore NL3D::CMRMEdgeFace;

%feature("abstract") NL3D::CMeshBase;

%include "nel/3d/anim_ctrl.h"
%include "nel/3d/anim_detail_trav.h"
%include "nel/3d/animatable.h"
%include "nel/3d/animated_lightmap.h"
%include "nel/3d/animated_material.h"
%include "nel/3d/animated_morph.h"
%include "nel/3d/animated_value.h"
%include "nel/3d/animation.h"
%include "nel/3d/animation_optimizer.h"
%include "nel/3d/animation_playlist.h"
%include "nel/3d/animation_set.h"
%include "nel/3d/animation_set_user.h"
%include "nel/3d/animation_time.h"
%include "nel/3d/async_file_manager_3d.h"
%include "nel/3d/async_texture_block.h"
%include "nel/3d/async_texture_manager.h"
%include "nel/3d/bezier_patch.h"
%include "nel/3d/bloom_effect.h"
%include "nel/3d/bone.h"
%include "nel/3d/bsp_tree.h"
%include "nel/3d/camera.h"
%include "nel/3d/camera_col.h"
%include "nel/3d/channel_mixer.h"
%include "nel/3d/clip_trav.h"
%include "nel/3d/cloud.h"
%include "nel/3d/cloud_scape.h"
%include "nel/3d/cloud_scape_user.h"
%include "nel/3d/cluster.h"
%include "nel/3d/coarse_mesh_build.h"
%include "nel/3d/coarse_mesh_manager.h"
%include "nel/3d/computed_string.h"
%include "nel/3d/cube_grid.h"
%include "nel/3d/cube_map_builder.h"
%include "nel/3d/debug_vb.h"
%include "nel/3d/deform_2d.h"
%include "nel/3d/driver.h"
%include "nel/3d/driver_material_inline.h"
%include "nel/3d/driver_user.h"
%include "nel/3d/dru.h"
%include "nel/3d/event_mouse_listener.h"
%include "nel/3d/fast_ptr_list.h"
%include "nel/3d/fasthls_modifier.h"
%include "nel/3d/flare_model.h"
%include "nel/3d/flare_shape.h"
%include "nel/3d/font_generator.h"
%include "nel/3d/font_manager.h"
%include "nel/3d/frustum.h"
%include "nel/3d/heat_haze.h"
%include "nel/3d/height_map.h"
%include "nel/3d/hls_color_texture.h"
%include "nel/3d/hls_texture_bank.h"
%include "nel/3d/hls_texture_manager.h"
%include "nel/3d/hrc_trav.h"
%include "nel/3d/ig_surface_light.h"
%include "nel/3d/ig_surface_light_build.h"
%include "nel/3d/index_buffer.h"
%include "nel/3d/init_3d.h"
%include "nel/3d/instance_group_user.h"
%include "nel/3d/instance_lighter.h"
%include "nel/3d/key.h"
%include "nel/3d/landscape.h"
%include "nel/3d/landscape_collision_grid.h"
%include "nel/3d/landscape_def.h"
%include "nel/3d/landscape_face_vector_manager.h"
%include "nel/3d/landscape_model.h"
%include "nel/3d/landscape_profile.h"
%include "nel/3d/landscape_user.h"
%include "nel/3d/landscape_vegetable_block.h"
%include "nel/3d/landscapeig_manager.h"
%include "nel/3d/landscapevb_allocator.h"
%include "nel/3d/landscapevb_info.h"
%include "nel/3d/layered_ordering_table.h"
%include "nel/3d/light.h"
%include "nel/3d/light_contribution.h"
%include "nel/3d/light_influence_interpolator.h"
%include "nel/3d/light_trav.h"
%include "nel/3d/light_user.h"
%include "nel/3d/lighting_manager.h"
%include "nel/3d/load_balancing_trav.h"
%include "nel/3d/lod_character_builder.h"
%include "nel/3d/lod_character_instance.h"
%include "nel/3d/lod_character_manager.h"
%include "nel/3d/lod_character_shape.h"
%include "nel/3d/lod_character_shape_bank.h"
%include "nel/3d/lod_character_texture.h"
%include "nel/3d/logic_info.h"
%include "nel/3d/material.h"
%include "nel/3d/matrix_3x4.h"
%include "nel/3d/mesh.h"
%include "nel/3d/mesh_base.h"
%include "nel/3d/mesh_base_instance.h"
%include "nel/3d/mesh_blender.h"
%include "nel/3d/mesh_block_manager.h"
%include "nel/3d/mesh_geom.h"
%include "nel/3d/mesh_instance.h"
%include "nel/3d/mesh_morpher.h"
%include "nel/3d/mesh_mrm.h"
%include "nel/3d/mesh_mrm_instance.h"
%include "nel/3d/mesh_mrm_skinned.h"
%include "nel/3d/mesh_mrm_skinned_instance.h"
%include "nel/3d/mesh_multi_lod.h"
%include "nel/3d/mesh_multi_lod_instance.h"
%include "nel/3d/mesh_vertex_program.h"
%include "nel/3d/meshvp_per_pixel_light.h"
%include "nel/3d/meshvp_wind_tree.h"
%include "nel/3d/mini_col.h"
%include "nel/3d/motion_blur.h"
%include "nel/3d/mrm_builder.h"
%include "nel/3d/mrm_internal.h"
%include "nel/3d/mrm_level_detail.h"
%include "nel/3d/mrm_mesh.h"
%include "nel/3d/mrm_parameters.h"
%include "nel/3d/nelu.h"
%include "nel/3d/noise_3d.h"
%include "nel/3d/occlusion_query.h"
%include "nel/3d/ordering_table.h"
%include "nel/3d/packed_world.h"
//%include "nel/3d/packed_zone.h"
%include "nel/3d/particle_system.h"
%include "nel/3d/particle_system_manager.h"
%include "nel/3d/particle_system_model.h"
%include "nel/3d/particle_system_process.h"
%include "nel/3d/particle_system_shape.h"
%include "nel/3d/patch.h"
%include "nel/3d/patch_rdr_pass.h"
%include "nel/3d/patchdlm_context.h"
%include "nel/3d/patchuv_locator.h"
%include "nel/3d/play_list_manager.h"
%include "nel/3d/play_list_manager_user.h"
%include "nel/3d/play_list_user.h"
%include "nel/3d/point_light.h"
%include "nel/3d/point_light_influence.h"
%include "nel/3d/point_light_model.h"
%include "nel/3d/point_light_named.h"
%include "nel/3d/point_light_named_array.h"
%include "nel/3d/portal.h"
%include "nel/3d/primitive_profile.h"
%include "nel/3d/ps_allocator.h"
%include "nel/3d/ps_attrib.h"
%include "nel/3d/ps_attrib_maker.h"
%include "nel/3d/ps_attrib_maker_bin_op.h"
%include "nel/3d/ps_attrib_maker_bin_op_inline.h"
%include "nel/3d/ps_attrib_maker_helper.h"
%include "nel/3d/ps_attrib_maker_iterators.h"
%include "nel/3d/ps_attrib_maker_template.h"
%include "nel/3d/ps_color.h"
%include "nel/3d/ps_direction.h"
%include "nel/3d/ps_dot.h"
%include "nel/3d/ps_edit.h"
%include "nel/3d/ps_emitter.h"
%include "nel/3d/ps_face.h"
%include "nel/3d/ps_face_look_at.h"
%include "nel/3d/ps_fan_light.h"
%include "nel/3d/ps_float.h"
%include "nel/3d/ps_force.h"
%include "nel/3d/ps_int.h"
%include "nel/3d/ps_iterator.h"
%include "nel/3d/ps_light.h"
%include "nel/3d/ps_located.h"
%include "nel/3d/ps_lod.h"
%include "nel/3d/ps_macro.h"
%include "nel/3d/ps_mesh.h"
%include "nel/3d/ps_misc.h"
%include "nel/3d/ps_particle.h"
%include "nel/3d/ps_particle2.h"
%include "nel/3d/ps_particle_basic.h"
%include "nel/3d/ps_plane_basis.h"
%include "nel/3d/ps_plane_basis_maker.h"
%include "nel/3d/ps_quad.h"
%include "nel/3d/ps_register_color_attribs.h"
%include "nel/3d/ps_register_float_attribs.h"
%include "nel/3d/ps_register_int_attribs.h"
%include "nel/3d/ps_register_plane_basis_attribs.h"
%include "nel/3d/ps_ribbon.h"
%include "nel/3d/ps_ribbon_base.h"
%include "nel/3d/ps_ribbon_look_at.h"
%include "nel/3d/ps_shockwave.h"
%include "nel/3d/ps_sound.h"
%include "nel/3d/ps_spawn_info.h"
%include "nel/3d/ps_tail_dot.h"
%include "nel/3d/ps_util.h"
%include "nel/3d/ps_zone.h"
%include "nel/3d/ptr_set.h"
%include "nel/3d/quad_effect.h"
%include "nel/3d/quad_grid.h"
%include "nel/3d/quad_grid_clip_cluster.h"
%include "nel/3d/quad_grid_clip_manager.h"
%include "nel/3d/quad_tree.h"
%include "nel/3d/radix_sort.h"
%include "nel/3d/raw_skin.h"
%include "nel/3d/raw_skinned.h"
%include "nel/3d/ray_mesh.h"
%include "nel/3d/register_3d.h"
%include "nel/3d/render_trav.h"
%include "nel/3d/root_model.h"
%include "nel/3d/scene.h"
%include "nel/3d/scene_group.h"
%include "nel/3d/scene_user.h"
%include "nel/3d/scissor.h"
%include "nel/3d/seg_remanence.h"
%include "nel/3d/seg_remanence_shape.h"
%include "nel/3d/shader.h"
%include "nel/3d/shadow_map.h"
%include "nel/3d/shadow_map_manager.h"
%include "nel/3d/shadow_poly_receiver.h"
%include "nel/3d/shadow_skin.h"
%include "nel/3d/shape.h"
%include "nel/3d/shape_bank.h"
%include "nel/3d/shape_bank_user.h"
%include "nel/3d/shape_info.h"
%include "nel/3d/shifted_triangle_cache.h"
%include "nel/3d/skeleton_model.h"
%include "nel/3d/skeleton_shape.h"
%include "nel/3d/skeleton_spawn_script.h"
%include "nel/3d/skeleton_weight.h"
%include "nel/3d/static_quad_grid.h"
%include "nel/3d/stripifier.h"
%include "nel/3d/surface_light_grid.h"
%include "nel/3d/tangent_space_build.h"
%include "nel/3d/target_anim_ctrl.h"
%include "nel/3d/tess_block.h"
%include "nel/3d/tess_face_priority_list.h"
%include "nel/3d/tess_list.h"
%include "nel/3d/tessellation.h"
%include "nel/3d/text_context.h"
%include "nel/3d/text_context_user.h"
%include "nel/3d/texture.h"
%include "nel/3d/texture_blank.h"
%include "nel/3d/texture_blend.h"
%include "nel/3d/texture_bloom.h"
%include "nel/3d/texture_bump.h"
%include "nel/3d/texture_cube.h"
%include "nel/3d/texture_dlm.h"
%include "nel/3d/texture_emboss.h"
%include "nel/3d/texture_far.h"
%include "nel/3d/texture_file.h"
%include "nel/3d/texture_font.h"
%include "nel/3d/texture_grouped.h"
%include "nel/3d/texture_mem.h"
%include "nel/3d/texture_multi_file.h"
%include "nel/3d/texture_near.h"
%include "nel/3d/texture_user.h"
%include "nel/3d/tile_bank.h"
%include "nel/3d/tile_color.h"
%include "nel/3d/tile_element.h"
%include "nel/3d/tile_far_bank.h"
%include "nel/3d/tile_light_influence.h"
%include "nel/3d/tile_lumel.h"
%include "nel/3d/tile_noise_map.h"
%include "nel/3d/tile_vegetable_desc.h"
%include "nel/3d/track.h"
//%include "nel/3d/track_bezier.h"
%include "nel/3d/track_keyframer.h"
%include "nel/3d/track_sampled_common.h"
%include "nel/3d/track_sampled_quat.h"
%include "nel/3d/track_sampled_quat_small_header.h"
%include "nel/3d/track_sampled_vector.h"
//%include "nel/3d/track_tcb.h"
%include "nel/3d/transform.h"
%include "nel/3d/transform_shape.h"
%include "nel/3d/transformable.h"
%include "nel/3d/trav_scene.h"
%include "nel/3d/u_3d_mouse_listener.h"
%include "nel/3d/u_animation.h"
%include "nel/3d/u_animation_set.h"
%include "nel/3d/u_bone.h"
%include "nel/3d/u_camera.h"
%include "nel/3d/u_cloud_scape.h"
%include "nel/3d/u_driver.h"
%include "nel/3d/u_instance.h"
%include "nel/3d/u_instance_group.h"
%include "nel/3d/u_instance_material.h"
%include "nel/3d/u_landscape.h"
%include "nel/3d/u_light.h"
%include "nel/3d/u_material.h"
%include "nel/3d/u_particle_system_instance.h"
%include "nel/3d/u_particle_system_sound.h"
%include "nel/3d/u_play_list.h"
%include "nel/3d/u_play_list_manager.h"
%include "nel/3d/u_point_light.h"
%include "nel/3d/u_ps_sound_impl.h"
%include "nel/3d/u_ps_sound_interface.h"
%include "nel/3d/u_scene.h"
%include "nel/3d/u_shape.h"
%include "nel/3d/u_shape_bank.h"
%include "nel/3d/u_skeleton.h"
%include "nel/3d/u_text_context.h"
%include "nel/3d/u_texture.h"
%include "nel/3d/u_track.h"
%include "nel/3d/u_transform.h"
%include "nel/3d/u_transformable.h"
%include "nel/3d/u_visual_collision_entity.h"
%include "nel/3d/u_visual_collision_manager.h"
%include "nel/3d/u_visual_collision_mesh.h"
%include "nel/3d/u_water.h"
%include "nel/3d/u_water_env_map.h"
%include "nel/3d/vegetable.h"
%include "nel/3d/vegetable_blend_layer_model.h"
%include "nel/3d/vegetable_clip_block.h"
%include "nel/3d/vegetable_def.h"
%include "nel/3d/vegetable_instance_group.h"
%include "nel/3d/vegetable_light_ex.h"
%include "nel/3d/vegetable_manager.h"
%include "nel/3d/vegetable_quadrant.h"
%include "nel/3d/vegetable_shape.h"
%include "nel/3d/vegetable_sort_block.h"
%include "nel/3d/vegetable_uv8.h"
%include "nel/3d/vegetablevb_allocator.h"
%include "nel/3d/vertex_buffer.h"
//%include "nel/3d/vertex_buffer_heap.h"
%include "nel/3d/vertex_program.h"
%include "nel/3d/vertex_program_parse.h"
%include "nel/3d/vertex_stream_manager.h"
%include "nel/3d/viewport.h"
%include "nel/3d/visual_collision_entity.h"
%include "nel/3d/visual_collision_entity_user.h"
%include "nel/3d/visual_collision_manager.h"
%include "nel/3d/visual_collision_manager_user.h"
%include "nel/3d/visual_collision_mesh.h"
%include "nel/3d/water_env_map.h"
%include "nel/3d/water_env_map_user.h"
%include "nel/3d/water_height_map.h"
%include "nel/3d/water_model.h"
%include "nel/3d/water_pool_manager.h"
%include "nel/3d/water_shape.h"
%include "nel/3d/zone.h"
%include "nel/3d/zone_corner_smoother.h"
%include "nel/3d/zone_lighter.h"
%include "nel/3d/zone_manager.h"
%include "nel/3d/zone_search.h"
%include "nel/3d/zone_smoother.h"
%include "nel/3d/zone_symmetrisation.h"
%include "nel/3d/zone_tgt_smoother.h"


%template(CPSValueGradient_float) CPSValueGradient<float>;

%template(CPSValueBlender_float) CPSValueBlender<float>;
%template(CPSValueBlender_sint32) CPSValueBlender<sint32>;
%template(CPSValueBlender_uint32) CPSValueBlender<uint32>;
%template(CPSValueBlender_CPlaneBasis) CPSValueBlender<CPlaneBasis>;

%template(CPSAttribMaker_CPlaneBasis) CPSAttribMaker<CPlaneBasis>;

%template(CPSAttribMakerMemory_float) CPSAttribMakerMemory<float>;
%template(CPSAttribMakerMemory_sint32) CPSAttribMakerMemory<sint32>;
%template(CPSAttribMakerMemory_uin32) CPSAttribMakerMemory<uint32>;
%template(CPSAttribMakerMemory_CPlaneBasis) CPSAttribMakerMemory<CPlaneBasis>;

%template(CPSAttribMakerBinOp_float) CPSAttribMakerBinOp<float>;
%template(CPSAttribMakerBinOp_sint32) CPSAttribMakerBinOp<sint32>;
%template(CPSAttribMakerBinOp_uint32) CPSAttribMakerBinOp<uint32>;
%template(CPSAttribMakerBinOp_CPlaneBasis) CPSAttribMakerBinOp<CPlaneBasis>;

%template(CPSAttribMakerT_float_CPSFloatCurveFunctor) CPSAttribMakerT<float,CPSFloatCurveFunctor>;
%template(CPSAttribMakerT_CPlaneBasis_CSpinnerFunctor) CPSAttribMakerT<CPlaneBasis,CSpinnerFunctor>;

%template(CTrackDefaultBlendable_float) CTrackDefaultBlendable<float>;
%template(CTrackDefaultBlendable_CVector) CTrackDefaultBlendable<CVector>;
%template(CTrackDefaultBlendable_CQuat) CTrackDefaultBlendable<CQuat>;
%template(CTrackDefaultBlendable_sint32) CTrackDefaultBlendable<sint32>;
%template(CTrackDefaultBlendable_CRGBA) CTrackDefaultBlendable<NLMISC::CRGBA>;

%template(CTrackDefaultNotBlendable_string) CTrackDefaultNotBlendable<std::string>;
%template(CTrackDefaultNotBlendable_bool) CTrackDefaultNotBlendable<bool>;

%template(CSingleton_CBloomEffect) NLMISC::CSingleton<CBloomEffect>;
